package com.ruoyi.system.dto;

import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 验收单提交DTO
 * 用于H5用户提交验收单填写结果
 * 
 * @author ruoyi
 * @since 2024-01-01
 */
@Data
public class AcceptanceChecklistSubmitDTO {

    /**
     * 验收单实例ID
     * 必填
     */
    @NotNull(message = "验收单实例ID不能为空")
    private Long instanceId;

    /**
     * H5用户ID
     * 可选，不传则从登录态获取
     */
    private Long h5UserId;

    /**
     * 验收单填写记录列表
     * 必填
     */
    @Valid
    @NotNull(message = "验收单填写记录不能为空")
    private List<RecordDTO> records;

    /**
     * 验收单填写记录DTO
     */
    @Data
    public static class RecordDTO {

        /**
         * 验收单模板项ID
         * 必填
         */
        @NotNull(message = "验收单模板项ID不能为空")
        private Long templateItemId;

        /**
         * 是否验收完成
         * 必填
         */
        @NotNull(message = "是否验收完成不能为空")
        private Integer isCompleted;

        /**
         * 完成情况备注
         * 可选
         */
        private String completionRemark;

        /**
         * 完成情况图片URL列表
         * 可选
         */
        private List<String> completionImages;
    }
}

